package LYL.Service

import org.apache.spark.sql.{DataFrame, SparkSession, functions => F}

object EnglishLevelAnalysisService {
  // 接收SparkSession和CSV路径参数
  def analyzeEnglishLevel(spark: SparkSession, csvFilePath: String): Unit = {
    try {
      // 读取CSV文件
      val df = spark.read
        .option("header", "true")
        .option("inferSchema", "true")
        .csv(csvFilePath)

      // 按英语水平和筛选结果分组统计
      val resultDF = df.groupBy("英语水平", "筛选结果")
        .agg(F.count("*").as("数量"))
        .orderBy("英语水平", "筛选结果")

      // 显示分析结果
      println("英语水平与筛选结果关系分析：")
      resultDF.show()


    } catch {
      case e: Exception =>
        println(s"分析过程出错: ${e.getMessage}")
    }
  }
}